package cn.px.dao.dto.upms;

import cn.px.common.bean.BaseDTO;
import cn.px.common.validation.group.AddGroup;
import cn.px.common.validation.group.UpdateGroup;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @Description 文件DTO
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
public class SysFileDTO extends BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
    private String id;
    /**
     * 所属目标ID
     */
    private String targetId;
    /**
     * 文件类型:1.图片，2.文件
     */
    private Integer type;

    /**
     * 文件名称,包含格式
     */
    private String name;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 文件格式
     */
    private String fileFormat;

    /**
     * 模块标识 WH_SQAL_WTPCHZ
     */
    private String module;
    /**
     * 地址
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "地址不能为空")
    private String url;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 创建时间
     */
    private LocalDateTime createdTime;
    /**
     * 创建人ID
     */
    private String createdUserId;
    /**
     * 创建人名称
     */
    private String createdUserName;
    /**
     * 更新人ID
     */
    private String updateUserId;
    /**
     * 更新用户
     */
    private String updateUserName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    public SysFileDTO() {
    }

    public SysFileDTO(String targetId, String module, String url) {
        this.targetId = targetId;
        this.module = module;
        this.url = url;
    }

    public SysFileDTO(String id, String targetId, String module, String url) {
        this.id = id;
        this.targetId = targetId;
        this.module = module;
        this.url = url;
    }

}
